// 给你两个非空的链表，表示两个非负的整数。它们每位数字都是按照逆序的方式存储的，并且每个节点只能存储一位数字。
// 请你将两个数相加，并以相同形式返回一个表示和的链表。
// 你可以假设除了数字0之外，这两个数都不会以0开头。
// 示例:
//     输入：l1 = [2,4,3], l2 = [5,6,4]
//     输出：[7,0,8]
//     解释：342 + 465 = 807.
/**
 * 思路：
 * 思路一：计算两个数的和，先把数组转换成数字，然后两个数相加。通过查找相关题解。思路错误。本题目的是考察链表计算
 *
 */

const addTwoNumbers = function (l1, l2) {
    let sum1 = 0;
    l1.map((item, index) => {
        sum1 += item * 10 ** index;
    });
    let sum2 = 0;
    l2.map((item, index) => {
        sum2 += item * 10 ** index;
    });
    let sum = (sum1 + sum2).toString();
    let result = [];
    for (let i = 0; i < sum.length; i++) {
        result.push(Number(sum.charAt(i)));
    }
    return result.reverse();
};

// const l1 = [2, 4, 3];
// const l2 = [5, 6, 4];

// const l1 = [0];
// const l2 = [0];

const l1 = [9, 9, 9, 9, 9, 9, 9];
const l2 = [9, 9, 9, 9];

console.time('add-two-numbers');
let result = addTwoNumbers(l1, l2);
console.timeEnd('add-two-numbers');
console.log(result);
